Skip to content


Overview of the ABINIT tutorials.

These tutorials are aimed at teaching the use of ABINIT, in the UNIX/Linux OS and its variants (MacOS, AIX etc.). They might be used for other operating systems, but the commands have to be adapted.

At present, nearly forty tutorials are available. Each of them is at most two hours of student work. Tutorials 1-4 cover the basics, other lectures are more specialized. There are dependencies between tutorials. The following schema should help you to understand these dependencies.

Schema 1

The base tutorials are presented at the top, in orange. The blocks in red represents additional tutorials related to ground-state features. Response-function features are explained in the tutorials in the light brown blocks. Finally, the Many-Body Perturbation Theory capabilities are demonstrated in the tutorials belonging to the dark brown blocks. The right-hand side blocks gather the tutorials related to the parallelism inside ABINIT.

Visualisation tools are NOT covered in the ABINIT tutorials. Powerful visualisation procedures have been developed in the Abipy context, relying on matplotlib. See the README of Abipy and the Abipy tutorials.

Before following the tutorials, you should have read the new user’s guide, as well as the pages 1045-1058 of Rev. Mod. Phys. 64, 1045 (1992). If you have more time, you should browse through the Chaps. 1 to 13, and appendices L and M of the book this book by R. M. Martin. The latter reference is a must if you have not yet used another electronic structure code or a Quantum Chemistry package.

After the tutorial, you might find it useful to learn about the test cases contained in the subdirectories of ~abinit/tests/, e.g. the directories fast, v1, v2, … , that provide many example input files. You should have a look at the README files of these directories.

Tutorials on basic concepts

  • The compilation howto tutorial explains how to compile ABINIT from source including the external libraries. More advanced topics such as using modules in supercomputing centers, compiling and linking with the intel compilers and the MKL library as well as OpenMP threads are also discussed.

The tutorials 1-4 present the basic concepts, and form a global entity: you should not skip any of these.

  • The tutorial 1 deals with the H2 molecule: get the total energy, the electronic energies, the charge density, the bond length, the atomisation energy

  • The tutorial 2 deals again with the H2 molecule: convergence studies, LDA versus GGA

  • The tutorial 3 deals with crystalline silicon (an insulator): the definition of a k-point grid, the smearing of the cut-off energy, the computation of a band structure, and again, convergence studies …

  • The tutorial 4 deals with crystalline aluminum (a metal), and its surface: occupation numbers, smearing the Fermi-Dirac distribution, the surface energy, and again, convergence studies …

Other tutorials present more specialized topics.

Miscellaneous advanced tutorials

There is a group of tutorials that can be started without any other prerequisite than the tutorials 1 to 4, and that you can do in any order (there are some exceptions, though):

There is an additional group of tutorials on density-functional perturbation theory (phonons, optics, dielectric constant, electron-phonon interaction, elastic response, non-linear optics, Raman coefficients, piezoelectricity …), for which some common additional information are needed:

  • The tutorial DFPT 1 (RF1 - response function 1) presents the basics of DFPT within ABINIT. The example given is the study of dynamical and dielectric properties of AlAs (an insulator): phonons at Gamma, dielectric constant, Born effective charges, LO-TO splitting, phonons in the whole Brillouin zone. The creation of the “Derivative Data Base” (DDB) is presented.

The additional information given by tutorial DFPT1 opens the door to:

  • The tutorial DFPT 2 (RF2 - response function 2) presents the analysis of the DDBs that have been introduced in the preceeding tutorial RF1. The computation of the interatomic forces and the computation of thermodynamical properties is an outcome of this tutorial.

  • The tutorial on Optic, the utility that allows to obtain the frequency dependent linear optical dielectric function and the frequency dependent second order nonlinear optical susceptibility, in the simple “Sum-Over-State” approximation.

The additional information given by tutorials DFPT1 and DFPT2 (Optic not needed) opens the door to several tutorials: the group of tutorials starting with the computation of elastic properties, followed by the two multibinit tutorials, the tutorial on non-linear optics, and the group of electron-phonon tutorials:

  • The tutorial on the elastic properties presents the computation with respect to the strain perturbation and its responses: elastic constants, piezoelectricity.

  • The first tutorial on MULTIBINIT presents the basic use of the MULTIBINIT application, how to build a harmonic model by using a second-principles approach for lattice dynamics simulations based on atomic potentials fitted on first-principles calculations.

  • The second tutorial on MULTIBINIT presents how to build a spin model and run spin dynamics in MULTIBINIT.

  • The tutorial on static non-linear properties presents the computation of responses beyond the linear order, within Density-Functional Perturbation Theory (beyond the simple Sum-Over-State approximation): Raman scattering efficiencies (non-resonant case), non-linear electronic susceptibility, electro-optic effect. Comparison with the finite field technique (combining DFPT calculations with finite difference calculations), is also provided.

  • The introductive tutorial on the electron-phonon interaction presents the electron-phonon driver integrated with the ABINIT executable, discuss important technical details related to the implementation and the associated input variables. The drawbacks/advantages with respect to the implementation available in ANADDB are also discussed.

  • The tutorial on mobility calculations explains how to compute phonon-limited carrier mobilities in semiconductors within the relaxation time approximation (RTA)

  • The tutorial on zero-point renormalization and temperature-dependence of electronic structure explains how to obtain the electron self-energy due to phonons, compute the zero-point renormalization (ZPR) of the band gap as well as temperature-dependent band gaps (or the whole electronic structure).

Two obsolete tutorials on electron-phonon interaction are still present. The implementations are still available at time of writing, but have been superseded by the new implementations, described in the above-mentioned tutorials. Their prerequisite is also tutorials DFPT1 and DFPT2 (Optic not needed):

There is another additional group of tutorials on many-body perturbation theory (GW approximation, Bethe-Salpeter equation), to be done sequentially):

  • The first tutorial on GW (GW1) deals with the computation of the quasi-particle band gap of Silicon (semiconductor), in the GW approximation (much better than the Kohn-Sham LDA band structure), with a plasmon-pole model.

  • The second tutorial on GW (GW2) deals with the computation of the quasi-particle band structure of Aluminum, in the GW approximation (so, much better than the Kohn-Sham LDA band structure) without using the plasmon-pole model.

  • The tutorial on the Bethe-Salpeter Equation (BSE) deals with the computation of the macroscopic dielectric function of Silicon within the Bethe-Salpeter equation.

Tutorials on parallelism

Concerning parallelism, there is another set of specialized tutorials. For each of these tutorials, you are supposed to be familiarized with the corresponding tutorial for the sequential calculation.


Note that not all features of ABINIT are covered by these tutorials. For a complete feature list, please see the Topics page. For examples on how to use these features, please see the ~abinit/tests/* directories and their accompanying README files.

To learn how to compile the code from source, please consult this guide: